home *** CD-ROM | disk | FTP | other *** search
- /*
- * tkparse.h
- */
-
- /*
- * Token types (mostly statement types).
- */
-
- enum e_token
- {
- token_UNKNOWN,
- token_bool,
- token_choice_header,
- token_choice_item,
- token_comment,
- token_define_bool,
- token_dep_tristate,
- token_else,
- token_endmenu,
- token_fi,
- token_hex,
- token_if,
- token_int,
- token_mainmenu_name,
- token_mainmenu_option,
- token_source,
- token_string,
- token_then,
- token_tristate,
- token_unset,
- };
-
- /*
- * Operator types for conditionals.
- */
-
- enum operator
- {
- op_eq,
- op_neq,
- op_and,
- op_and1,
- op_or,
- op_bang,
- op_lparen,
- op_rparen,
- op_constant,
- op_variable,
- op_kvariable,
- op_nuked
- };
-
- /*
- * Conditions come in linked lists.
- * Some operators take strings:
- *
- * op_constant "foo"
- * op_variable "$ARCH", "$CONFIG_PMAC"
- * op_kvariable "$CONFIG_EXPERIMENTAL"
- *
- * Most "$..." constructs refer to a variable which is defined somewhere
- * in the script, so they become op_kvariable's instead. Note that it
- * is legal to test variables which are never defined, such as variables
- * that are meaningful only on other architectures.
- */
-
- struct condition
- {
- struct condition * next;
- enum operator op;
- const char * str; /* op_constant, op_variable */
- struct kconfig * cfg; /* op_kvariable */
- };
-
- /*
- * A statement from a config.in file
- */
-
- struct kconfig
- {
- struct kconfig * next;
- enum e_token token;
- char * optionname;
- char * label;
- char * value;
- struct condition * cond;
- char * depend; /* token_dep_tristate */
- struct kconfig * cfg_parent; /* token_choice_item */
-
- /* used only in tkgen.c */
- char global_written;
- int menu_number;
- int menu_line;
- struct kconfig * menu_next;
- };
-
-
-
- /*
- * Prototypes
- */
-
- extern void fix_conditionals ( struct kconfig * scfg ); /* tkcond.c */
- extern void dump_tk_script ( struct kconfig * scfg ); /* tkgen.c */
-